package com.miracle.blog.service.impl;

import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.miracle.blog.dao.UserAuthDao;
import com.miracle.blog.dto.UserAreaDTO;
import com.miracle.blog.entity.UserAuth;
import com.miracle.blog.service.UserAuthService;
import com.miracle.blog.vo.ConditionVO;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;

import static com.miracle.blog.constant.RedisPrefixConst.USER_AREA;
import static com.miracle.blog.enums.UserAreaTypeEnum.getUserAreaType;

@Service
public class UserAuthServiceImpl extends ServiceImpl<UserAuthDao, UserAuth> implements UserAuthService {
    @Override
    public List<UserAreaDTO> listUserAreas(ConditionVO conditionVO) {
        List<UserAreaDTO> userAreaDTOList = new ArrayList<>();
//        switch (Objects.requireNonNull(getUserAreaType(conditionVO.getType()))) {
//            case USER:
//                // 查询注册用户区域分布
//                //Object userArea = redisService.get(USER_AREA);
//                if (Objects.nonNull(userArea)) {
//                    userAreaDTOList = JSON.parseObject(userArea.toString(), List.class);
//                }
//                return userAreaDTOList;
//            case VISITOR:
//                // 查询游客区域分布
//                //Map<String, Object> visitorArea = redisService.hGetAll(VISITOR_AREA);
//                if (Objects.nonNull(visitorArea)) {
//                    userAreaDTOList = visitorArea.entrySet().stream()
//                            .map(item -> UserAreaDTO.builder()
//                                    .name(item.getKey())
//                                    .value(Long.valueOf(item.getValue().toString()))
//                                    .build())
//                            .collect(Collectors.toList());
//                }
//                return userAreaDTOList;
//            default:
//                break;
//        }
        return userAreaDTOList;
    }
}
